package MyNet;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/*
 * 使用UDP协议发送数据
 * 		创建发送端Socket对象
 * 		创建数据并打包
 * 		发送数据
 * 
 * UDP协议收发数据的注意事项：
 * 			端口号错误：数据可以正常发出，不会出现异常，但是收不到数据
 * 			Exception in thread "main" java.net.BindException: Address already in use: bind
 * 			端口号已经绑定了
 */
public class SendDemo {
	public static void main(String[] args) throws IOException {
		// 创建发送端socket对象
		DatagramSocket ds = new DatagramSocket();
		// 创建数据并打包
		/*
		 * DatagramPacket:此类表示数据包
		 * 数据byte[]
		 * 设备地址ip
		 * 进程的地址(端口号)
		 */
		String s = "hello UDP,im coming!";
		byte[] bys = s.getBytes();
		int length = bys.length;
		InetAddress address = InetAddress.getByName("yzj");
		int port = 8888;
		DatagramPacket dp = new DatagramPacket(bys, length,address,port);
		// 发送数据
		ds.send(dp);
		// 释放资源
		ds.close();
	}
}
